perm filename LINES.FAI[NEW,LCS]1 blob
sn#149687 filedate 1975-03-08 generic text, type T, neo UTF8
00100 TITLE LINES
00200 EXTERNAL DST,SIZ,PLTR,DPY,AIVECT,AVECT,PLOT,.COMM.
00300 ENTRY LINES ; SUBROUTINE LINES(A,B,L)
00400 DEFINE FIXX(N) ; COMMON/DST/BB,CC
00500 < JUMPGE N,.+5 ; COMMON /SIZ/RSZ,JCEN,KCEN /FL/IC,NZ,NX,RZ,XGP
00600 MOVNS N ; COMMON/DL/IXRX,SAVER,AA /PLTR/IPLT,RHT,DIS
00700 FIX N,233000 ; COMMON R2,JA,CENTR,JB,RJQ(20),JQ(20)
00800 MOVNS N ; COMMON/DPY/JJ(4000),WDS(250),MEDIT,IGO
00900 CAIA ; EQUIVALENCE (ITOP,JJ(3999)),(IBOT,JJ(4000))
01000 FIX N,233000 > ; 1,(JJ2,JJ(2))
01100 DEFINE FLOAT(N) ; DATA BB/.008/,CC/3.5/
01200 < TLC N,232000 ;C SET XGP TO 1200.0 FOR MARGIN IN XEROX COPIES
01300 FADR N,N >
01400 DEFINE ABS(N)
01500 < SKIPGE N
01600 MOVNS N >
01700 T←1 ↔ M←2 ↔ N←3 ↔ K←4
01800
01900 LINES: 0
02000 ; GO TO 23
02100 JRST L23
02200 ;22 IF(JQ(1).NE.0)GO TO 23
02300 L22: SKIPE PLTR+=27
02400 JRST L23
02500 ; IF(CC.EQ.1000)GO TO 23
02600 MOVSI T,212764
02700 CAMN T,DST+1
02800 JRST L23
02900 ; B=B*(CC-BB*ABS(A))
03000 MOVE T,@(16)
03100 ABS(T)
03200 FMPR T,DST
03300 FSBR T,DST+1
03400 FMPRM T,@1(16)
03500 MOVNS @1(16)
03600 ;23 IF(IPLT)GO TO 2
03700 L23: SKIPGE PLTR
03800 JRST L2
03900 ; M=A*RSZ
04000 MOVE M,@(16)
04100 FMPR M,SIZ
04200 FIXX(M)
04300 ; N=B*RSZ
04400 MOVE N,@1(16)
04500 FMPR N,SIZ
04600 FIXX(N)
04700 ; IF(RSZ.LE.0.8571)GO TO 3
04800 MOVE T,[=0.8571]
04900 CAML T,SIZ
05000 JRST L3
05100
05200 ; M=M-JCEN
05300 SUB M,SIZ+1
05400 ; N=N-KCEN
05500 SUB N,SIZ+2
05600 ; IF(JA.NE.8)GO TO 5
05700 MOVEI T,10
05800 CAME T,.COMM.+1
05900 JRST L5
06000 ; IF(M.GT.511)M=511
06100 CAMLE M,[=511]
06200 HRRZI M,=511
06300 ; IF(M.LT.-511)M=-511
06400 CAMGE M,[-=511]
06500 HRROI M,-=511
06600 ;5 IF(IABS(M).GT.512)GO TO 77
06700 L5: CAIG M,=512
06800 CAMGE M,[-=512]
06900 JRST L77
07000 ; IF(IABS(N).LT.512)GO TO 4
07100 CAIGE N,=512
07200 CAMG N,[-=512]
07300 CAIA
07400 JRST L4
07500 ;77 KZ=-1
07600 L77: SETOM KZ#
07700 ; RETURN
07800 JRA 16,3(16)
07900 ;4 IF(KZ.EQ.0)GO TO 6
08000 L4: SKIPN KZ
08100 JRST L6
08200 ; KZ=0
08300 SETZM KZ
08400 MOVEM M,MM# ; GO TO 1
08450 MOVEM N,NN#
08500 JRST L1
08600 ;3 IF(JA.EQ.44)GO TO 6
08700 L3: MOVEI T,54
08800 CAMN T,.COMM.+1
08900 JRST L6
09000 ; K=B
09100 MOVE K,@1(16)
09200 FIXX(K)
09300 ; IF(K.GT.ITOP)ITOP=B
09400 CAMG K,DPY+=3998
09500 JRST L333
09600 MOVE T,@1(16)
09700 FIXX(T)
09800 MOVEM T,DPY+=3998
09900
10000 ; IF(K.LT.IBOT)IBOT=B
10100 L333: CAML K,DPY+=3999
10200 JRST L6
10300 MOVE T,@1(16)
10400 FIXX(T)
10500 MOVEM T,DPY+=3999
10600 ;6 IF(JJ2.GT.3990)RETURN
10700 L6: MOVEI T,7626
10800 CAMGE T,DPY+1
10900 JRA 16,3(16)
11000 ; IF(L.EQ.3)GO TO 1
11100 MOVEM M,MM
11200 MOVEM N,NN
11300 HRRZI T,3
11400 CAMN T,@2(16)
11500 JRST L1
11600 ; CALL AVECT(M,N)
11700 JSA 16,AVECT
11800 JUMP MM
11900 JUMP NN
12000 ; RETURN
12100 JRA 16,3(16)
12200 ;1 CALL AIVECT(M,N)
12300 L1: JSA 16,AIVECT
12400 JUMP MM
12500 JUMP NN
12600 ; RETURN
12700 JRA 16,3(16)
12800 ;2 IF(IPLT.EQ.-2)RETURN
12900 L2: MOVNI T,2
13000 CAMN T,PLTR
13100 JRA 16,3(16)
13200 ;9 M=ROFF(A*DIS)
13300 L9: MOVE M,@(16)
13400 FMPR M,PLTR+2
13500 SKIPGE M
13600 FADR M,[-=1.0]
13700 FADR M,[=0.5]
13800 FIXX(M)
13900 MOVEM M,MM
14000 ; N=ROFF(B*RHT)
14100 MOVE N,@1(16)
14200 FMPR N,PLTR+1
14300 SKIPGE N
14400 FADR N,[-=1.0]
14500 FADR N,[=0.5]
14600 FIXX(N)
14700 MOVEM N,NN
14800 ;8 CALL PLOT(M,N,L)
14900 L8: MOVE T,@2(16)
15000 MOVEM T,LL#
15100 JSA 16,PLOT
15200 JUMP MM
15300 JUMP NN
15400 JUMP LL
15500 ; END
15600 JRA 16,3(16)
15700 END